package org.dromara.system.service;

import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.system.domain.bo.SysSolutionDocBo;
import org.dromara.system.domain.vo.SysSolutionDocVo;
import org.springframework.web.multipart.MultipartFile;

import jakarta.servlet.http.HttpServletResponse;
import java.util.Collection;

/**
 * 解决方案文档Service接口（PDF文件夹方案）
 */
public interface ISysSolutionDocService {

    /**
     * 查询解决方案文档列表
     */
    TableDataInfo<SysSolutionDocVo> queryPageList(SysSolutionDocBo queryBo, PageQuery pageQuery);

    /**
     * 查询解决方案文档详情
     */
    SysSolutionDocVo queryById(Long docId);

    /**
     * 修改解决方案文档信息
     */
    Boolean updateByBo(SysSolutionDocBo bo);

    /**
     * 批量删除解决方案文档
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

    /**
     * 上传PDF文件夹格式解决方案
     *
     * @param files      方案文件夹内的所有PDF文件（包含主PDF，命名以 -main.pdf 结尾）
     * @param folderName 方案名称
     * @param remark     备注
     * @return 解决方案文档信息
     */
    SysSolutionDocVo uploadPdfFolderSolution(MultipartFile[] files, String folderName, String remark);

    /**
     * 预览PDF解决方案文档（重定向到PDF预览地址）
     *
     * @param docId       文档ID
     * @param disposition 显示方式（inline/attachment）
     * @param response    响应对象
     */
    void previewDocument(Long docId, String disposition, HttpServletResponse response) throws Exception;
}
